package es.decloud.webapp.action;

import java.io.Serializable;
import java.util.Collections;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;

import es.decloud.model.Aula;
import es.decloud.model.Centro;
import es.decloud.service.AulaManager;

@ManagedBean
@RequestScoped
public class AulaList extends BasePage implements Serializable {

	private static final long serialVersionUID = -8529467747981207827L;

	private Long idCentro;

	@ManagedProperty(value = "#{aulaManager}")
	private AulaManager aulaManager;

	public void setAulaManager(AulaManager aulaManager) {
		this.aulaManager = aulaManager;
	}

	public Long getIdCentro() {
		return idCentro;
	}

	public void setIdCentro(Long idCentro) {
		this.idCentro = idCentro;
	}

	public AulaList() {
		setSortColumn("nombre");
	}

	@SuppressWarnings("unchecked")
	public List<Aula> getAulas() {
		if (!isAdmin()) {
			// Obtenemos el centro al que está asociado el usuario en base de
			// datos
			Centro centro = getLoggedUser().getCentro();

			// Si tiene centro asociado informamos su id para hacer la consulta
			// en BBDD
			idCentro = (centro != null) ? centro.getId() : null;
		}

		// Accedemos a por la lista de aulas solo si tenemos el id del centro
		return (idCentro != null && idCentro > 0) ? sort(aulaManager.getAulas(idCentro.toString())) : Collections
				.emptyList();
	}
}
